/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.javeriana.negocio;

import java.util.Timer;
import java.util.TimerTask;
import java.util.Observable;

/**
 *
 * @author Juan Pablo Granados
 */
public class Lector extends Observable {

    Sensor sensor;
    Timer timer;
    TimerTask timerTask;

    public Lector(long segundos) {
        crearTimerTask();
        if (sensor == null) {
            sensor = new Sensor();
        }
        timer = new Timer();
        timer.scheduleAtFixedRate(timerTask, 0, segundos * 1000);
    }

    public void setFrecuencia(long segundos) {
        timer.cancel();
        timer = new Timer();
        crearTimerTask();
        timer.scheduleAtFixedRate(timerTask, 0, segundos * 1000);        
    }
    
    private void crearTimerTask(){
        this.timerTask = new TimerTask() {
            /**
             * Método al que Timer llamará cada segundo. Se encarga de avisar a
             * los observadores de este modelo.
             */
            @Override
            public void run() {
                setChanged();
                notifyObservers(sensor.getTemperatura());
            }
        };
    }
}
